package edu.scsu.csci.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import edu.scsu.csci.core.EScope;

/**
 * Gives the domain object clazz.
 *   
 * @author Maqbool Khan.
 */
@Target( { ElementType.TYPE, ElementType.METHOD })
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
public @/**
 * @viz.diagram ADomainObject.tpx
 */
interface ADomainObject {
	
	/**
	 * Domain object clazz.
	 * @return list
	 */
	 Class<?> clazz();
	
	/**
	 * Domain object scope.
	 * @return	EScope
	 */
	 EScope scope() default EScope.REQUEST;
	 
	 String key() default "";
}
